home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / repr.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  152 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''Redo the `...` (representation) but with limits on most sizes.'''
  5. __all__ = [
  6.     'Repr',
  7.     'repr']
  8. import __builtin__
  9. from itertools import islice
  10.  
  11. class Repr:
  12.     
  13.     def __init__(self):
  14.         self.maxlevel = 6
  15.         self.maxtuple = 6
  16.         self.maxlist = 6
  17.         self.maxarray = 5
  18.         self.maxdict = 4
  19.         self.maxset = 6
  20.         self.maxfrozenset = 6
  21.         self.maxdeque = 6
  22.         self.maxstring = 30
  23.         self.maxlong = 40
  24.         self.maxother = 20
  25.  
  26.     
  27.     def repr(self, x):
  28.         return self.repr1(x, self.maxlevel)
  29.  
  30.     
  31.     def repr1(self, x, level):
  32.         typename = type(x).__name__
  33.         if ' ' in typename:
  34.             parts = typename.split()
  35.             typename = '_'.join(parts)
  36.         
  37.         if hasattr(self, 'repr_' + typename):
  38.             return getattr(self, 'repr_' + typename)(x, level)
  39.         else:
  40.             s = __builtin__.repr(x)
  41.             if len(s) > self.maxother:
  42.                 i = max(0, (self.maxother - 3) // 2)
  43.                 j = max(0, self.maxother - 3 - i)
  44.                 s = s[:i] + '...' + s[len(s) - j:]
  45.             
  46.             return s
  47.  
  48.     
  49.     def _repr_iterable(self, x, level, left, right, maxiter, trail = ''):
  50.         n = len(x)
  51.         if level <= 0 and n:
  52.             s = '...'
  53.         else:
  54.             newlevel = level - 1
  55.             repr1 = self.repr1
  56.             pieces = [ repr1(elem, newlevel) for elem in islice(x, maxiter) ]
  57.             s = ', '.join(pieces)
  58.             if n == 1 and trail:
  59.                 right = trail + right
  60.             
  61.         return '%s%s%s' % (left, s, right)
  62.  
  63.     
  64.     def repr_tuple(self, x, level):
  65.         return self._repr_iterable(x, level, '(', ')', self.maxlist, ',')
  66.  
  67.     
  68.     def repr_list(self, x, level):
  69.         return self._repr_iterable(x, level, '[', ']', self.maxlist)
  70.  
  71.     
  72.     def repr_array(self, x, level):
  73.         header = "array('%s', [" % x.typecode
  74.         return self._repr_iterable(x, level, header, '])', self.maxarray)
  75.  
  76.     
  77.     def repr_set(self, x, level):
  78.         x = sorted(x)
  79.         return self._repr_iterable(x, level, 'set([', '])', self.maxset)
  80.  
  81.     
  82.     def repr_frozenset(self, x, level):
  83.         x = sorted(x)
  84.         return self._repr_iterable(x, level, 'frozenset([', '])', self.maxfrozenset)
  85.  
  86.     
  87.     def repr_deque(self, x, level):
  88.         return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
  89.  
  90.     
  91.     def repr_dict(self, x, level):
  92.         n = len(x)
  93.         if n == 0:
  94.             return '{}'
  95.         
  96.         if level <= 0:
  97.             return '{...}'
  98.         
  99.         newlevel = level - 1
  100.         repr1 = self.repr1
  101.         pieces = []
  102.         for key in islice(sorted(x), self.maxdict):
  103.             keyrepr = repr1(key, newlevel)
  104.             valrepr = repr1(x[key], newlevel)
  105.             pieces.append('%s: %s' % (keyrepr, valrepr))
  106.         
  107.         if n > self.maxdict:
  108.             pieces.append('...')
  109.         
  110.         s = ', '.join(pieces)
  111.         return '{%s}' % (s,)
  112.  
  113.     
  114.     def repr_str(self, x, level):
  115.         s = __builtin__.repr(x[:self.maxstring])
  116.         if len(s) > self.maxstring:
  117.             i = max(0, (self.maxstring - 3) // 2)
  118.             j = max(0, self.maxstring - 3 - i)
  119.             s = __builtin__.repr(x[:i] + x[len(x) - j:])
  120.             s = s[:i] + '...' + s[len(s) - j:]
  121.         
  122.         return s
  123.  
  124.     
  125.     def repr_long(self, x, level):
  126.         s = __builtin__.repr(x)
  127.         if len(s) > self.maxlong:
  128.             i = max(0, (self.maxlong - 3) // 2)
  129.             j = max(0, self.maxlong - 3 - i)
  130.             s = s[:i] + '...' + s[len(s) - j:]
  131.         
  132.         return s
  133.  
  134.     
  135.     def repr_instance(self, x, level):
  136.         
  137.         try:
  138.             s = __builtin__.repr(x)
  139.         except:
  140.             return '<%s instance at %x>' % (x.__class__.__name__, id(x))
  141.  
  142.         if len(s) > self.maxstring:
  143.             i = max(0, (self.maxstring - 3) // 2)
  144.             j = max(0, self.maxstring - 3 - i)
  145.             s = s[:i] + '...' + s[len(s) - j:]
  146.         
  147.         return s
  148.  
  149.  
  150. aRepr = Repr()
  151. repr = aRepr.repr
  152.